package reflect;

import java.lang.reflect.Method;

public class ReflectDemo6 {
    public static void main(String[] args) throws Exception {
//        Person p = new Person();
//        p.hehe();

        Class cls = Class.forName("reflect.Person");
        Object obj = cls.newInstance();
        /**
         * getMethod()和getMethods()可以获取本类所有公开方法
         * getDeclaredMethod()可以获取本类定义的方法（包括私有方法，不能获取父类方法）
         */
//        Method method = cls.getMethod("hehe");
        Method method = cls.getDeclaredMethod("hehe");
        //设置允许访问  暴力反射
        method.setAccessible(true);
        method.invoke(obj);
        //使用后应当及时关闭权限
        method.setAccessible(false);

    }
}
